学一学oAuth授权协议
oAuth
oAuth 是一种授权协议,主要作用是为了提供安全的认证和授权标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。
详情可查看oAuth 2 文档
Spring Security
Spring Security 是一个安全框架,前身是 Acegi Security,能够为 Spring 企业应用系统提供声明式的安全访问控制。Spring Security 基于 Servlet 过滤器、IoC 和 AOP,为 Web 请求和方法调用提供身份确认和授权处理,避免了代码耦合,减少了大量重复代码工作。
oAuth2.0 可以通过Spring Security oAuth2
或者Shiro oAuth2
实现
oAuth 提供的角色:
- 第三方应用程序(客户端)
- 资源所有者(用户)
- HTTP 服务提供者
- 认证服务器
- 资源服务器
客户端授权模式
- 简单模式(implicit) :没有自己的服务器,没有后台,需要将Access Token放到客户端中,不推荐
- 授权码模式(authorization code):有后台,有自己的服务器,官方推荐
- 密码模式(resource owner password credentials):两家互相信任的企业,或者同一家企业的不同产品线
- 客户端模式(client credentials):同一产品线的不同服务进行互相调用,需要登录且没有登陆界面时使用
访问令牌
- Access Token
- Refresh Token (不可长时间有效,采用Refresh Token刷新令牌)